package com.ysd.twocrm.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ysd.twocrm.entity.Modules;
import com.ysd.twocrm.entity.ModulesTree;
import com.ysd.twocrm.entity.RoleModules;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;

public interface ModulesMapper extends BaseMapper<Modules> {

    List<Modules> modulesUname(Integer userId);//根据用户id来查询他的模块
    List<Modules> selectParentId();//查询顶层的模块

    //查询的layui的tree
    List<ModulesTree> selectModulesList();//查询全部模块
    //根绝角色id来查询当前非父模块的模块id；用于前台tree角色设置模块的渲染
    @Select(value = "select * from modules where modulesId in(select modulesId from rolemodules where roleid=#{roleId}) and modulesParentId!=0")
    List<RoleModules> findModulesIdByRolesId(Integer roleId);
    //根据模块名称来进行判断
    @Select(value = "select * from modules where modulesname=#{modulesName}")
    Modules findModulesByMname(String modulesName);
    //根据模块id来查询当前模块下是否有子模块
    @Select(value = "select * from modules where modulesParentId=#{modulesId}")
    List<Modules> findModulesById(Integer modulesId);
    //根据模块id来修改名称
    @Update(value = "update modules set modulesname=#{modulesname} where modulesId=#{modulesId}")
    Integer exitModulesByIdSetName(String modulesname,Integer modulesId);
    //升级模块
@Update(value = "update modules set modulesParentId=#{modulesParentId} where modulesId=#{modulesId}")
    Integer exitModulesByMid(Integer modulesId,Integer modulesParentId);

}
